package com.ruoyi.electricity.service.impl;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.ruoyi.electricity.domain.DTO.AlarmLevelCount;
import com.ruoyi.electricity.domain.DTO.RiskWarningDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.electricity.mapper.TRiskWarningsMapper;
import com.ruoyi.electricity.domain.TRiskWarnings;
import com.ruoyi.electricity.service.ITRiskWarningsService;

/**
 * 风险预警管理Service业务层处理
 *
 * @author wu
 * @date 2023-10-28
 */
@Service
public class TRiskWarningsServiceImpl implements ITRiskWarningsService {
    @Autowired
    private TRiskWarningsMapper tRiskWarningsMapper;

    /**
     * 查询风险预警管理
     *
     * @param id 风险预警管理ID
     * @return 风险预警管理
     */
    @Override
    public TRiskWarnings selectTRiskWarningsById(Long id) {
        return tRiskWarningsMapper.selectTRiskWarningsById(id);
    }

    /**
     * 查询风险预警管理列表
     *
     * @param tRiskWarnings 风险预警管理
     * @return 风险预警管理
     */
    @Override
    public List<TRiskWarnings> selectTRiskWarningsList(TRiskWarnings tRiskWarnings) {
        return tRiskWarningsMapper.selectTRiskWarningsList(tRiskWarnings);
    }

    /**
     * 新增风险预警管理
     *
     * @param tRiskWarnings 风险预警管理
     * @return 结果
     */
    @Override
    public int insertTRiskWarnings(TRiskWarnings tRiskWarnings) {
        return tRiskWarningsMapper.insertTRiskWarnings(tRiskWarnings);
    }

    /**
     * 修改风险预警管理
     *
     * @param tRiskWarnings 风险预警管理
     * @return 结果
     */
    @Override
    public int updateTRiskWarnings(TRiskWarnings tRiskWarnings) {
        return tRiskWarningsMapper.updateTRiskWarnings(tRiskWarnings);
    }

    /**
     * 批量删除风险预警管理
     *
     * @param ids 需要删除的风险预警管理ID
     * @return 结果
     */
    @Override
    public int deleteTRiskWarningsByIds(Long[] ids) {
        return tRiskWarningsMapper.deleteTRiskWarningsByIds(ids);
    }

    @Override
    public List<RiskWarningDto> getAllRiskWarnings() {
        return tRiskWarningsMapper.getAllRiskWarnings();
    }

    /**
     * 删除风险预警管理信息
     *
     * @param id 风险预警管理ID
     * @return 结果
     */
    @Override
    public int deleteTRiskWarningsById(Long id) {
        return tRiskWarningsMapper.deleteTRiskWarningsById(id);
    }

    @Override
    public List<AlarmLevelCount> countAlarmLevelByTime(Date startTime, Date endTime) {
        List<String> levelList = tRiskWarningsMapper.selectAllLevel();
        List<AlarmLevelCount> alarmLevelCountList = tRiskWarningsMapper.countAlarmLevelByTime(startTime, endTime);
        if (!levelList.contains("四级报警")){
            levelList.add("四级报警");
        }
        if (!levelList.contains("三级报警")){
            levelList.add("三级报警");
        }
        if (!levelList.contains("二级报警")){
            levelList.add("二级报警");
        }
        if (!levelList.contains("一级报警")){
            levelList.add("一级报警");
        }
        ArrayList<String> list = new ArrayList<>();
        for (AlarmLevelCount alarmLevelCount : alarmLevelCountList) {
            list.add(alarmLevelCount.getAlarmLevel());
        }
        for (String s : levelList) {
            if (!list.contains(s)) {
                AlarmLevelCount alarmLevelCount = new AlarmLevelCount();
                alarmLevelCount.setCount(0);
                alarmLevelCount.setAlarmLevel(s);
                alarmLevelCountList.add(alarmLevelCount);
            }
        }



        return alarmLevelCountList;
    }
}
